<script>on mouseUpif the optionkey is up thenget word 2 of the clicklinego card itelseput empty into idxrepeat with c=1 to the number of cardsgo card cput "•" & line 1 of bg field "Question" & return after idxend repeatgo card 1put idx into cd field "Index"end ifend mouseUp</script>
</part>
<content>
<layer>background</layer>
<id>2</id>
<text>Index</text>
</content>
<content>
<layer>card</layer>
<id>1</id>
<text>•Index•Why does this stack exist?•Where can I get the latest version of Eudora and documentation?•So, what the heck is the deal with Eudora? Is it freeware, shareware, or what? Who owns it, UIUC or Qualcomm?•So, what's in it for Qualcomm?•What about PC users? Is there a Eudora for them?•Where does Eudora keep my mail? How can multiple users share one Macintosh and both use Eudora?•Can I keep Eudora from putting mail in the System folder?•How big is "big"?•Why the name, "Eudora"?•My correspondents are complaining that lines in the messages I send them are broken in funny places. How can I make Eudora send better-looking messages?•Can I keep my mail on a floppy?•Can I keep my mail somewhere besides the system folder of my hard disk?•Can two or more people share one Macintosh for their mail?•How come it lets me set my return address; isn't that a security problem?•My mailer insists on having a Date: header in my mail; can Eudora make one?•What's the difference between a POP account and an SMTP server?•I have an "alias" list on UNIX. Do I have to type all that back in?•I have a LOT of stored mail on UNIX. Can I get that into Eudora?•Can I get mail and nicknames out of Eudora and back to UNIX?•I have an ancient FastPath, and MacTCP doesn't seem to work. What do I do?•I don't think Eudora has enough settings; I want to tune, tweak, and in general find havoc to wreak.•Where does Eudora keep my preferences?•Is there anything I should know about customizing Eudora with ResEdit?•I want to move around in Messages without using the mouse, but I don't have an extended keyboard. Are there any shortcuts?•What's ph?•What other phone books are available?•How can I add headers that don't appear in outgoing mail windows to mail I send?•Will Eudora work with UUPC?•I sure wish Eudora's windows didn't cover the disk icons and the trash. Is there anything I can do?•My POP server says "-ERR Maildrop lock busy" or somesuch crud. What do I do?•I'm trying to use Serial Eudora, and I keep getting "Serial Port in Use", even after I quit Eudora.•I'm trying to use Serial Eudora I can receive mail ok, but when I send it I get "Command unrecognized."•I'm trying to use Serial Eudora, and everything works except attachments; I usually get "Attachment corrupted; it was too short."•I don't have any domain name servers. What do I do?•What's SLIP?•When I try to check mail, it says "Connection came up halfway then failed."•My messages keep showing up without any headers. I see ???@???, and I can't reply. The mail looks fine on the server.•I have some mail in emacs/techmail/babyl format. Can I convert it to Eudora?•I have some mail in QuickMail format. Can I convert it?•Can I change the size at which Eudora splits messages? Why does Eudora split messages? How can I put split messages back together?•When I reply to a message, Eudora puts an "R" in the left column of the message summary. But if I delete the reply before I send it, the "R" stays. Is this a bug?•Where can I find a server for Eudora's "Change Password" menu item?•The mail transport system around here puts a lot of stupid junk in mail headers. Can I make Eudora filter it out?•I don't seem to get as much feedback from Communications Tools when I use Eudora as I do from other programs. What gives?•What the heck is "X-Sender" and "(Unverified)" and how can I make them go away?</text>
<text>We put stuff in this stack that just doesn't fit in the manual, either because it's too arcane or because it's too embarassing.If you have questions about Eudora that the manual, Eudora's balloon help, and this stack don’t answer, you should seek out information from your local experts who know your network best. The Q&A stack has lots of information about commonly asked questions and on customizing Eudora to fit a user's personal taste. The manual contains a complete explanation about Eudora's features and commands, as well as information important to the network administrator. Not every question they could ask is covered by all these sources of information. We monitor the UseNet news groups for questions and comments about Eudora. If you still can't find the answer to your question, or just want to comment on or suggest an enhancement for Eudora , write us using'eudora-hotline@qualcomm.com' or 'sdorner@qualcomm.com'.</text>
</content>
<name></name>
<script></script>
</card>
card_9701.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>Where can I get the latest version of Eudora and documentation?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>The best thing to do is send mail to "eudora-info@qualcomm.com"; that will get you The Whole Story on what version is currently available and how to get it.</text>
</content>
<name></name>
<script></script>
</card>
card_16895.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>So, what the heck is the deal with Eudora? Is it freeware, shareware, or what? Who owns it, UIUC or Qualcomm?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>Eudora 1.4 is absolutely free for you to use. You may redistribute it, provided you do not charge for Eudora, over and above recovering your redistribution costs. If you do redistribute Eudora, you must not remove any copyright notices.Eudora 2.0 is commercial software, and must be purchased from QUALCOMM.UIUC owns the rights to Eudora as a whole, but has licensed it to QUALCOMM. Parts of Eudora are copyright UIUC, parts copyright QUALCOMM.</text>
</content>
<name></name>
<script></script>
</card>
card_17276.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text><span class="style1"> hear this question frequently. The answer is, "What's in it for UIUC?" "What's in it for NCSA?" "What's in it for Rand?" All these organizations develop tools for their own use, andthen share them with the Internet community. Why?1. Since you're going to do it anyway, why not share it?2. Good press.3. Hope that other organizations will do the same.Anyway, for those of you who want to know what Qualcomm is, just scroll down (Warning: text written by marketing type follows):</span><span class="style5"> Overview QUALCOMM Incorporated is a leader in digital wireless communications technologies. The company manufactures, markets, licenses and operates advanced communications systems and products based on digital wireless technology. QUALCOMM had revenues of $107.5 million in the fiscal year ending September 1992. Publicly traded since December 1991, its stock trades on the NASDAQ National Market System, symbol: QCOM.FOUNDED 1985Employees Over 900 personnel are located at the company's San Diego headquarters and throughout the United States.Products AND TECHNOLOGIES OmniTRACS System -- QUALCOMM's principal product is the OmniTRACS system, the most technologically advanced two-way mobile satellite communications and tracking system of its kind in the world. Introduced in late 1988, the OmniTRACS system provides data transmission and position reporting services for over 225 transportation companies and other mobile customers using more than 43,000 OmniTRACS terminals in the United States and Canada. The system also operates in Europe and service is planned to begin in Japan, Mexico and Brazil in 1993.CDMA -- QUALCOMM’s Code Division Multiple Access (CDMA) is a next-generation technology for digital wireless telephone communications. CDMA improves voice quality and increases capacity by as much as 10 to 20 times over today's FM analog cellular system. CDMA uses spread spectrum technology to break up speech into small, digitized segments and encode them to identify each call. A large number of users can thus share the same band of spectrum and greatly increase system capacity. Commercial deployment of CDMA cellular systems will begin in several U.S. cities in early 1994. A North American standard based on QUALCOMM's CDMA technology is expected to be adopted by the Spring of 1993 for the rapidly growing cellular telephone industry.Globalstar™ -- Under development through a joint venture between QUALCOMM and Loral Aerospace Corporation, Globalstar is a low-earth orbit (LEO) satellite-based, cellular-like voice and data service for mobile or fixed applications. Globalstar will be designed to provide affordable and reliable voice, data, fax and position location services to customers around the globe.VLSI -- Included in the company’s product offerings are a family of Viterbi and Trellis decoders, Direct Digital Synthesizers (DDS), Phased Locked Loop (PLL) synthesizers and Voltage Controlled Oscillators (VCOs) based on Very Large Scale Integration (VLSI) technology. Government -- QUALCOMM’s government products include Data Link Systems for government test and training ranges, and the QM6100 Universal Compatible Modem for Defense Satellite Communications System (DSCS). HEADQUARTERS10555 Sorrento Valley RoadSan Diego, California 92121(619) 587-1121Management Dr. Irwin M. Jacobs Chairman and CEOHarvey P. White PresidentDr. Andrew J. Viterbi Vice Chairman and CTORichard N. Sulpizio Senior Vice President and COOAdelia A. Coffman Senior Vice President and CFOEditorial inquiries should be directed to: Chip Swearngan, McQUERTERGROUP Phone: (619) 450-0030 FAX: (619) 450-0967Karen Bowman, QUALCOMM Incorporated Phone: (619) 597-5021 FAX: (619) 587-8276 4/93</span></text>
</content>
<name></name>
<script></script>
</card>
card_17560.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpshow cd field 1end mouseUp</script>
</part>
<part>
<id>1</id>
<type>field</type>
<visible> <false /> </visible>
<dontWrap> <false /> </dontWrap>
<dontSearch> <false /> </dontSearch>
<sharedText> <false /> </sharedText>
<fixedLineHeight> <false /> </fixedLineHeight>
<autoTab> <false /> </autoTab>
<lockText> <true /> </lockText>
<rect>
<left>73</left>
<top>86</top>
<right>493</right>
<bottom>286</bottom>
</rect>
<style>opaque</style>
<autoSelect> <false /> </autoSelect>
<showLines> <false /> </showLines>
<wideMargins> <false /> </wideMargins>
<multipleLines> <false /> </multipleLines>
<reservedFamily> 0 </reservedFamily>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>left</textAlign>
<font>Geneva</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<textHeight>16</textHeight>
<name></name>
<script></script>
</part>
<content>
<layer>background</layer>
<id>2</id>
<text>What about PC users? Is there a Eudora for them?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>They deserve to suffer, don't you agree?</text>
</content>
<content>
<layer>card</layer>
<id>1</id>
<text>PC-Eudora is now available for anonymous ftp. If you can't find it, mail pc-eudora-info@qualcomm.com for information.Please, don't ask me about PC-Eudora issues; I don't do PC's. Ask pc-eudora-info.</text>
</content>
<name></name>
<script>on closecardhide cd field 1pass closecardend closecard</script>
</card>
card_3046.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpgo to card id 3757end mouseUp</script>
</part>
<content>
<layer>background</layer>
<id>2</id>
<text>Where does Eudora keep my mail? How can multiple users share one Macintosh and both use Eudora?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>Eudora keeps all its documents in a folder called, "Eudora Folder," in your system folder. There are several different types of documents in the folder.1. "Eudora Settings" stores your current settings.2. "Eudora Nicknames" stores your list of Nicknames.3. "Eudora Log" is used for logging4. There are two documents for each mailbox listed in the "Mailbox" menu. One has same name as the mailbox, and your mail is stored in it. The other has ".toc" appended onto the name of the mailbox. This document contains the "table of contents" for the mailbox.</text>
</content>
<name></name>
<script></script>
</card>
card_15306.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>Can I keep Eudora from putting mail in the System folder?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>Yes. Create a plain file (NOT a folder) named “Eudora Folder” in the System Folder. Eudora will then insist on being started from a Settings File.</text>
</content>
<name></name>
<script></script>
</card>
card_15605.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>My correspondents are complaining that lines in the messages I send them are broken in funny places. How can I make Eudora send better-looking messages?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>The best way is to set the "Word-wrap outgoing messages." preference, and only press return when you want to start a new paragraph. Eudora will take care of breaking your paragraphs into lines.</text>
</content>
<name></name>
<script></script>
</card>
card_3303.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpgo to card id 3387end mouseUp</script>
</part>
<content>
<layer>background</layer>
<id>2</id>
<text>Can I keep my mail on a floppy?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text><span class="style3">es, you can. First, run Eudora and allow it to create the "Eudora Folder" in the system folder. Then drag the Eudora Folder onto the floppy you wish to use for your mail.When you want to read your mail, start Eudora by DOUBLE-CLICKING the "Eudora Settings" document in the folder on the floppy. If you double-click on Eudora itself, Eudora will create a new Eudora Folder in the system folder. (If you want to disable that behavior, place a regular document (any kind of document) named "Eudora Folder" in your system folder.)You may also use any folder on your hard disk.</span></text>
</content>
<name></name>
<script></script>
</card>
card_3387.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpgo to card id 3303end mouseUp</script>
</part>
<content>
<layer>background</layer>
<id>2</id>
<text>Can I keep my mail somewhere besides the system folder of my hard disk?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text><span class="style3">es, you can. First, run Eudora and allow it to create the "Eudora Folder" in the system folder. Then, drag all the documents from the Eudora Folder into the folder you wish to use for your mail. You may throw away the Eudora Folder itself.When you want to read your mail, start Eudora by DOUBLE-CLICKING the "Eudora Settings" document IN THE FOLDER. If you double-click on Eudora itself, Eudora will create a new Eudora Folder in the system folder. (If you want to disable that behavior, place a regular document (any kind of document) named "Eudora Folder" in your system folder.)You may also use a floppy for your mail.</span></text>
</content>
<name></name>
<script></script>
</card>
card_3757.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>How come it lets me set my return address; isn't that a security problem?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>Yes and no. You can, after all, type anything you want for a "From" address on a regular letter, and forge a signature. The key word here is, "forge." Forgery is what you are committing when you type use someone else's address for your return address.In any case, Internet mail is inherently subject to forged messages. Eudora doesn't pretend things are otherwise.</text>
</content>
<name></name>
<script></script>
</card>
card_14723.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>What's the difference between a POP account and an SMTP server?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>POP (Post Office Protocol) is what you use to pick up your mail. Your mail is stored in your POP account until you pick it up, either with Eudora or by logging into the POP server directly. The POP server requires that you provide a login and password.SMTP (Simple Mail Transfer Protocol) is used to send your mail. SMTP does NOT require a login and a password.You needn't use the same server for SMTP and POP, though you can if you wish.</text>
</content>
<name></name>
<script></script>
</card>
card_5515.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>I have an "alias" list on UNIX. Do I have to type all that back in?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text><span class="style3">ope. Transfer your .mailrc file to your Macintosh, using ftp or kermit's TEXT mode. Then, put the file in your mail folder (by default "Eudora Folder" in the system folder), and name it, "Eudora Nicknames". Eudora will use the lines in it that begin with "alias", and ignore the rest.Two caveats; One, if a given nickname appears more than once in your .mailrc file, UNIX will make one big nickname out of all the lines. Eudora will ignore all but the last nickname. Eudora DOES understand what a "\" at the end of a line means, so if you used them to build lists in your .mailrc, you'll be ok.Two, if you have more than one address listed for an alias, separate the addresses with </span><span class="style2">commas</span><span class="style3">, not spaces.</span></text>
</content>
<name></name>
<script></script>
</card>
card_5734.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>I have a LOT of stored mail on UNIX. Can I get that into Eudora?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text><span class="style1">up. It just </span><span class="style4">happens</span><span class="style1"> that Eudora uses the same format for storing mail that the bsd Mail program does. Simply transfer the files to your Macintosh, using FTP's or kermit's TEXT mode, and place them in your mail folder (by default "Eudora Folder" in your system folder).Warning: Eudora will not handle messages over 32K in length. You won't be able to open such messages, unless you break them up. The easiest way to do this is to use the mailbox for "UUCP input"; see README.uucp for details.</span></text>
</content>
<name></name>
<script></script>
</card>
card_5979.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>Can I get mail and nicknames out of Eudora and back to UNIX?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>Yup. Upload the "Eudora Nicknames" document and any mailbox documents you wish, using FTP's or kermit's TEXT mode.Beware that, if you used Eudora to change any of your nicknames, all commands EXCEPT alias commands will have been removed from "Eudora Nicknames". You may wish to use vi to combine "Eudora Nicknames" and your present ".mailrc" file, rather than just renaming "Eudora Nicknames" to ".mailrc".</text>
</content>
<name></name>
<script></script>
</card>
card_11208.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>I have an ancient FastPath, and MacTCP doesn't seem to work. What do I do?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>Have your FastPath upgraded to a FastPath 5, or buy a Gatorbox (info@cayman.com) or Multigate, or something else like that.Or get an Ethernet instead.</text>
</content>
<name></name>
<script></script>
</card>
card_11322.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpgo to card id 4920end mouseUp</script>
</part>
<part>
<id>4</id>
<type>button</type>
<visible> <true /> </visible>
<reserved5> 0 </reserved5>
<reserved4> 0 </reserved4>
<reserved3> 0 </reserved3>
<reserved2> 0 </reserved2>
<reserved1> 0 </reserved1>
<enabled> <true /> </enabled>
<rect>
<left>373</left>
<top>258</top>
<right>487</right>
<bottom>280</bottom>
</rect>
<style>roundrect</style>
<showName> <true /> </showName>
<highlight> <false /> </highlight>
<autoHighlight> <false /> </autoHighlight>
<sharedHighlight> <true /> </sharedHighlight>
<family>0</family>
<titleWidth>0</titleWidth>
<icon>0</icon>
<textAlign>center</textAlign>
<font>Chicago</font>
<textSize>12</textSize>
<textStyle>plain</textStyle>
<name>Ooo! Show Me!</name>
<script>on mouseUpgo to card id 12664end mouseUp</script>
</part>
<content>
<layer>background</layer>
<id>2</id>
<text>I don't think Eudora has enough settings; I want to tune, tweak, and in general find havoc to wreak.</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>You can customize a LOT of things with ResEdit:There are also a bunch of "secret" preferences.</text>
</content>
<content>
<layer>card</layer>
<id>2</id>
<text>5602 ALERT_TIMEOUT The number of seconds before alerts are automatically dismissed.5604 ALIAS_A_WIDTH Width of the Nickname list column in the Nicknames window.5605 ALIAS_CMD DON'T TOUCH.5606 ALIAS_E_LABEL Label for the addresses section of the nicknames window.5607 ALIAS_FILE Name of nickname file.5608 ALIAS_ADDR_PC Percent of vertical space to allot to addresses in nicknames.5614 ALREADY_READ Status header (substring) for already-read message.5615 APPL_FONT Name of application font.5801 BINHEX BinHex intro line, used to recognize BinHex files. DON'T TOUCH.5808 BINHEX_OUT BinHex intro line, put on outgoing messages. DON'T TOUCH.5816 BUFFER_SIZE Disk I/O buffer size.6001 COMP_TOP_MARGIN Height of icon bar.6017 CTB_NEWLINE Newline used during CTB connections.6020 DATE_HEADER DON'T TOUCH.6201 DATE_STRING_FMT DON'T TOUCH.6203 DELIMITERS DON'T TOUCH.6205 DOUBLE_TOLERANCE Double-click mouse movement tolerance.6211 FILE_LINE_FMT Don't touch.6213 FLUSH_SECS Number of seconds between FlushVol calls.6214 FOLDER_NAME Name of Eudora folder.6219 ICMP_SECONDS Number of seconds to leave ICMP messages on-screen.6220 IN Name of In mailbox (be sure to change Mailbox && Transfer menus, too.)6401 INFINITE_STRING DON'T TOUCH.6408 FRAGMENT_SIZE Size at which to split messages. Must satisfy FRAGMENT_SIZE<SPLIT_THRESH<32K6411 MBOX_MOVE Mailboxes window button name.6412 MBOX_MOVE_BACK Mailboxes window button name.6413 MBOX_NEW Mailboxes window button name.6414 MBOX_REMOVE Mailboxes window button name.6415 MBOX_RENAME Mailboxes window button name.6416 NOTE_CMD Command used for notes in nicknames window.6602 NAVIN Navigation In string name.6603 NAVOUT Navigation Out string name.6604 NEWLINE TCP newline string.6804 OPEN_TIMEOUT Timeout for opening connections.6805 OUT Name of Out mailbox (be sure to change Mailbox menu, too.)6806 PARTIAL_TICKS Number of ticks before Live Nicknames moves pointer.6812 PH_HOST Default ph host.6814 PH_PORT Port used for ph.6815 PH_QUERY Query command used in ph. Should end with space.6816 PH_QUIT Quit command used in ph.6820 POP_PORT Port used for POP3.7002 POSITION_NAME Names of window size resources.7004 PRINT_FONT Default print font.7005 PRINT_H_FONT Print header font.7006 PRINT_H_MAR Print header margin.7007 PRINT_H_SIZE Print header fontsize.7008 QUEUE_BUTTON Name of Queue button.7009 QUOTE_PREFIX Prefix for quoted sections.7016 RECEIVED_HEAD Don't touch.7017 RECV_TIMEOUT Receive timeout, in seconds.7207 SEND_BUTTON Name of Send button.7208 SETTINGS_FILE Name of settings/signature file.7209 SHORT_TIMEOUT Number of seconds for timeouts during navigation.7211 SMTP_PORT Port for SMTP.7213 STATE_LABELS Message state labels.7214 STATUS Header that gives message status.7216 FWD_INTRO String to insert before quoted Forward text7218 TAB_DISTANCE Number of chars to indent for a tab.7219 TCP_BUFFER_SIZE Buffer size for network.7220 TCP_DRIVER Name of tcp/ip driver.7402 TEMP_SUFFIX Temp file suffix.7403 TEXT_CREATOR Default TEXT file creator.7408 TOC_SUFFIX Suffix for table of contents files.7411 TRANSFER_PREFIX Prefix for use in Transfer menu.7412 TRASH Name of Trash mailbox (be sure to change Mailbox && Transfer menus, too.)7413 TS_CONNECT_FMT CTB connect request string.7419 WRAP_LIMIT Number of chars at which to wrap messages.7605 NAVMID Navigation Mid string name.7606 PRINT_LEFT_MAR Left printout margin.7607 PRINT_RIGHT_MAR Right printout margin.7609 CTB_ME SMTP Helo argument for dialups.7610 TCP_ME SMTP Helo argument for networks.7611 NO_PLAIN_OPEN Message when there is a plain file named Eudora Folder in the system folder.7612 DEF_MWIDTH Message width when PREF_MWIDTH is not set.7613 UU_BAD_LENGTH Message when an incorrect line length is found in uuencoded data.7614 HEX_SIZE_PERCENT Eudora will decode a BinHex file if the message is at least this percent of the size the BinHex file reports, or...7615 HEX_SIZE_THRESH if the message is less than this size.7616 BIG_MESSAGE Size limit for Skip Big Messages.7619 SPLIT_THRESH Size at which a message must be split. Must satisfy FRAGMENT_SIZE<SPLIT_THRESH<32K7620 BOX_SIZE_FMT Size display format for mailbox windows.7801 BOX_SIZE_SIZE size of mailbox size display7804 BOX_SIZE_FONT_SIZE Size of font for mailbox size box.7805 ALIAS_VERBOTEN Characters forbidden in aliases.7813 BCC_ONLY Put in the To: field if a message has only Bcc:'s.7817 FWD_TRAIL String to put after forwarded text7818 REP_SEND_ATTR Reply to sender attribution7820 WAIT_FOR_START_AE # seconds to wait for ODoc, OApp, or PDoc8008 DESK_LEFT_STRIP extra desktop margin on the left when creating a window8009 DESK_RIGHT_STRIP ditto, but on the right8010 DESK_BOTTOM_STRIP ditto, but on the bottom8011 DESK_TOP_STRIP ditto, but on the top8012 SENDER Sender: header8014 ME Nicknames for sender.8015 REPLY text for normal reply8016 REPLY_ALL text if PREF_REPLY_ALL is set8203 NEVER_WARN Never warn the user of mail to be sent this many hours into the future8204 BIG_MESSAGE_FRAGMENT # of body lines of a skipped big message to download8205 ATTRIBUTION # attribution line; from, date, subject8206 ALIAS_N_LABEL Label for private notes section of nicknames8207 LOCAL_PORT Port from which Eudora connects; leave at 08216 PW_PORT Port for password-change protocol8402 QUOTE_LIMIT Wrap limit for quoted sections8403 FINGER_PORT Port for finger requests8404 PRIORITY_FMT Format for the priority header.8406 COMPACT_WASTE_PER Percentage of waste space that triggers a compaction8407 COMPACT_FREE_PER Percentage of free disk space that triggers a compaction8410 FWD_QUOTE Quote character for forwards8604 DATE_SUM_FMT Format for date summaries; time, date, timezone8610 MESS_TITLE_PLUG Message titling string; 0 mailbox, 1 sender, 2 date, 3 subject.8613 PH_RETURN Return clause for ph. Should be empty or begin with space.8614 SCROLL_THROTTLE Number of ticks between page scrolls.8619 MIME_MULTIPART Don't touch.8620 MIME_TEXT Don't touch.8801 MIME_MESSAGE Don't touch.8802 MIME_BASE64 Don't touch.8803 MIME_APPLICATION Don't touch8804 MIME_APPLEFILE Don't touch8805 MIME_APPLEDOUBLE Don't touch8806 MIME_DIGEST Don't touch8807 MIME_BINHEX Don't touch8808 MIME_ISO_LATIN1 Don't touch8809 MIME_PARTIAL Don't touch8812 NAME Don't touch9002 MAX_SMTP_LINE Maximum line to send to SMTP9006 MIME_BINARY Don't touch.9207 POSTSCRIPT Don't touch.9208 PS_MAGIC Magic bytes for PostScript file9216 MIME_BINHEX2 Don't touch5501 ALT_SIG Name of alternate signature file.5502 HEADER_LABEL Name of header box in filters window.5503 MATCH_LABEL Name of Match: section of filters window.5504 ACTION_LABEL Name of Action: section of filters window.5505 MAKE_SUBJECT_LABEL Label for Make Subject5511 SUBJ_REPLACE Replacement metastring for subject area of filters window.5515 FILT_XFER Label of transfer to button.5516 FILT_COPY Label of copy to button.5703 AE_TIMEOUT_TICKS Apple Event timeout, in ticks.5707 STATIONERY Name of default stationery file.5709 X_UUENCODE Label to use for uuencoded body parts.5710 UUDECODE_FMT Don't touch.5714 RRT_FMT Return-receipt header.5910 FILTER_ANY Magic string for filter to match any header.5911 FILTER_BODY Magic string for filter to match body of mail.</text>
</content>
<name></name>
<script></script>
</card>
card_12664.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpgo to card id 11322end mouseUp</script>
</part>
<content>
<layer>background</layer>
<id>2</id>
<text>Where does Eudora keep my preferences?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text><span class="style1">ost things are kept in STR# resource id 1000 in your Eudora Settings file. The strings mean the following things:</span><span class="style9">You can use ResEdit to change these. Preferences marked with “*” can only be set with ResEdit; there is no way to set them from within Eudora. Settings ending with a “?” are on if there is a “y” in them. Pay careful attention-some of these are expressed opposite to the way they are expressed in the “Switches...” dialog.</span></text>
</content>
<content>
<layer>card</layer>
<id>2</id>
<text> 1 Font to use in windows 2 Size of font to use in windows 3 POP Account 4 SMTP Server 5 Return address 6 Mail check interval 7 Word wrap? 8 Show all headers? 9 Guess Paragraphs?10 TEXT file creator11 TEXT file creator name12 Reserved13 Send on Check?14 Zoom Windows?15 Auto Ok?16 Empty Trash on Quit?17 Not used18 Leave Mail On Server?19 Keep Copies?20 Get attention by an Alert?21 Get attention by a Sound?22 Include Signature?23 Ph Server24 Save Password?25 Immediate Send?26 BinHex plain TEXT files?27 Use Comm Toolbox?28 Tabs in Body?29 Font to use when printing.30 Size of font to use in printing.31 Password (if Save Password is on)32 Icon Bar?33 Don't get attention by flashing menu icon?34 Don't show progress?35 Easy Delete?36 Mailbox superclose?37 Case sensitive find?38 Live nicknames?39 Message width?40 Message height?41 Include headers (Save As)?42 Switch messages with plain arrows?43 Attachments folder name44 Use Attachments folder?45 Attachments volume and dirID46 Don't switch messages with command arrows?47 Skip big messages?48 Reserved 49 Reserved50 Find in summaries only?51 Do not open In box when mail arrives?52 Reserved53* Don't check for out of date toc's?54 Reserved55 Reply to all?56 Don't include self?57* Use APOP command?58* Number of monitor to use for new windows59* Do not write toc file after each message is added60 Reserved61 Dialup username62 Dialup password (if Save Password is on)63-70 Reserved71* Logging. Sum of the numbers of the things you want logged: 1 Who you send mail to and when 2 Who you receive mail from and when 4 Navigation 8 Alert dialogs 16 Progress window messages 32 All bytes transferred in and out of Eudora72* Do not pay attention to X-Priority headers on incoming mail.73* Do not pay attention to priority or original when composing reply.74 Use Finger instead of Ph?75 Default view translation table.76 Default send translation table.77 Real name78* Do not use Easy Open?79* Do not draw lines in mailbox windows?80* Ignore illegal characters in BinHex files?81* Use the POP3 "last" command to find unread mail?82* Max # of messages to fetch in one transaction.83* For RadioMail84 Offline?85 Do not fix curly quotes?86 Tidy attachment folder?87* Use the "xtnd xmit" extended POP3 command to send mail?88 Transliteration table for ph responses89 Transliteration table for ph queries90 Type of outgoing attachment to use (0 Double, 1 Single, 2 BinHex, 3 uuencode)91 Is Eudora allowed to use Quoted-Printable encoding?</text>
</content>
<name></name>
<script></script>
</card>
card_4920.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpgo to card id 11322end mouseUp</script>
</part>
<content>
<layer>background</layer>
<id>2</id>
<text>Is there anything I should know about customizing Eudora with ResEdit?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text><span class="style3">he best way to modify Eudora resources is to copy them to your Eudora Settings file, or a file of type 'rsrc' and creator 'CSOm' in your Preferences folder. To override a string with an 'STR ' resource, put your new string in an 'STR ' resource with an id that's the sum of the STR# id and the string number of the string you wish to change.If you do any customization, be careful when you upgrade to new versions of Eudora; strings sometimes move. Make note of what you change, and verify that still do what you want. I will try to warn you when I make such changes.</span></text>
</content>
<name></name>
<script></script>
</card>
card_6265.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>I want to move around in Messages without using the mouse, but I don't have an extended keyboard. Are there any shortcuts?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>If you have a "Control" key, you can use the following:Control-A: Like "Home" on the Extended KeyboardControl-D: "End"Control-K: "Page Up"Control-L: "Page Down"Before you send the ATP after me, I want you to know that this feature is more a result of Apple's keybaord design than my programming.</text>
</content>
<name></name>
<script></script>
</card>
card_2446.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text><span class="style3">h is UIUC's electronic phone book. If you're interested in installing it at your site, fetch uxc.cso.uiuc.edu:pub/qi.tar.Z. You will need a UNIX guru to get it installed.If neither 'finger' nor 'ph' tips your bucket, you may be able to write a gateway from the directory of your choice to ph. Here's a sample:</span></text>
</content>
<content>
<layer>card</layer>
<id>1</id>
<text>#!/usr/local/bin/perl## Written by Steve Dorner, UIUC, 1991.## This program looks like qi to Eudora's ph window, but really just does# finger.## You'll need this in /etc/services:# ns 105/tcp # And this in /etc/inetd.conf:# ns stream tcp nowait nobody /<path>/fingerqi fingerqi# (you must of course make <path> be the path to this script.## no buffering, please$| = 1;## grab name, strip lf, metachars$_ = <>;chop;tr/<|>;`//d;## execute fingerif (!open(FINGER,"/usr/ucb/finger " . $_ . "|")){ print "500:Botched!\n"; die;}## pass the response$curNum = 0;while (<FINGER>){ chop; if (/^Login name:/) {$curNum++;} printf "-200:" . $curNum . ": ". $_ . "\n";}print "200:Ok.\n";## read and respond to Eudora's quit<>;print "200:Bye.\n";</text>
</content>
<name></name>
<script></script>
</card>
card_13579.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>What other phone books are available?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>Well, there's one by Dan Kegel at JPL. I don't know much about it, but you could give it a try.</text>
</content>
<content>
<layer>card</layer>
<id>1</id>
<text>Subject: horton 1.6: automatic e-mail directory daemon & whoisd serverFollowup-To: comp.mail.miscArchive-name: horton1.6Submitted-by: dank@blacks.jpl.nasa.govHorton 1.6 was posted to alt.sources on Feb 23 1992.Horton is a whois server that lets network administrators provide their users with a constantly updated e-mail directory with minimal effort.A single instance of Horton can service several thousand mailhosts.Horton creates a database of all active e-mail accounts in your domain, and provide access to the database via the whois protocol.Since Horton uses Finger to gather its information, no work is required onthe part of other system administrators. (In this respect, it is ratherlike Archie, the FTP directory server.)You don't even have to tell Horton which hosts to poll; it figures that outitself using nslookup. Only hosts that support Finger and SMTP, and can routemail back to your host, are polled.It has been tested at a university (thanks, Heather!) and at a large government research lab on Sun4's running SunOS 4.1 and 4.1.1, and accepts Finger output from many flavors of fingerd.- Dan Kegel (dank@blacks.jpl.nasa.gov)::::::::::::::pgms/horton/README::::::::::::::horton - an e-mail directory gopher and whois server@(#)README 1.9 2/22/92DESCRIPTION Horton was written to provide an automatic way of creating a directory of electronic mail addresses. Users can look up e-mail addresses knowing only a fragment of the name or username of the person in question, with the command whois -h horton_server search_key where horton_server is the name of the computer running Horton search_key is the fragment of the name All people whose name or username match the pattern are listed, one per line.IMPLEMENTATION Horton simply runs 'finger @host' on a predetermined set of computers, and keep track of who logs in where. It works with the finger services provided by NeXTs, Suns, and even VMS systems running Multinet. It also runs 'finger user' on all the users of the local computer; this is meant to catch users who never log in but rather check their mail with Eudora via POPmail. (POPmail has to be modified to update /var/adm/lastlog for this to have any effect.) A hacked version of finger which times out after ten seconds is used to avoid locking up when probing unknown hosts. monthly.sh is run manually during startup to determine which hosts should go in hosts.poll, and monthly thereafter, e.g. by placing the line 1 1 1 * * /bin/nice /etc/horton/monthly.sh podunk.edu /etc/horton >/dev/null 2>&1 in the pseudouser's crontab. It takes two arguments: the domain name, and the working directory. hourly.sh is a c-shell script to be run periodically, e.g. by placing the line 12 8-17 * * 1-5 /bin/nice /etc/horton/hourly.sh podunk.edu /etc/horton >/dev/null 2>&1 in the pseudouser's crontab. It takes two arguments: the domain name, and the working directory. in.whoisd is a server that accepts search patterns from clients running the program 'whois', and runs egrep on the database file. It is invoked from /etc/inetd.conf, e.g. whois stream tcp nowait nobody /etc/horton/in.whoisd /etc/horton/hourly.out It takes one argument: the data file to search.INPUT FILES hosts.xlat must exist and must be nonempty. If you have clusters of computers with different hostnames but which share the same hostname for purposes of e-mail (e.g. if any computer remote mounts another computer's /var/spool/mail directory). The format is one computer per line; the 1st field is the computer's hostname, the 2nd field is the hostname of the computer's e-mail server. For example, if mammoth and fsw1 are servers for their ilk, antelope mammoth cheetah mammoth fsw2 fsw1 fsw3 fsw1 If you have no need for this file, set it to never match anything, e.g. dummy_host dummy_mailhost hosts.exclude must exist and must be nonempty. Use this file to exclude hosts that don't want to be disturbed in any way by automatic fingering or mail-probing. It can contain hostnames or IP addresses. These are matched with fgrep, so partial names or addresses will act like wildcards. Careful, or you may exclude more hosts than you intend. The format is one pattern per line: scratchy 128.149.77. 128.149.80.5 If you have no need for this file, set it to never match anything, e.g. dummy_hostOUTPUT FILES hosts.poll lists the hosts to query with finger, one per line. For instance, cheetah mammoth antelope fsw1 fsw2 fsw3 pathos It is updated by monthly.sh, but you can add lines to it manually, too. The revolving output data file is hourly.dat, which is in the format user@host full name last date logged in where the columns are separated by tabs. It is both read and written by hourly.sh. The same data is placed in hourly.out, but with tabs expanded to spaces. It is written by hourly.sh, and read by in.whoisd.INSTALLATION 1. As root, create a pseudouser (e.g. horton) to run monthly.sh. Copy dot.plan to the pseudouser's home directory as .plan. Edit the .plan file to reflect your TELEPHONE_NUMBER, E-MAIL-ADR, and the server's HOSTNAME. (When anxious sysops try to figure out why their machine is being finger'd and mail'd periodically by this strange user, the .plan file will explain the situation to them, and tell them whom to contact.) If pseudouser is not horton, edit the .plan file to reflect the name. Choose a working directory, perhaps /etc/horton or /home/horton/etc. Pseudouser must own this directory and its contents. Edit Makefile to set value of DIR to the working directory. If your host is a POPmail host, you may wish to activate the 'local users' loop in hourly.sh. 2. Compile the software with 'make', then 'make install', and 'make clean'. 3. Run monthly.sh to initialize hosts.poll. Verify that hosts.poll has good hosts in it. 4. Run hourly.sh to initialize hourly.out. Verify that hourly.out has good usernames and addresses in it. 5. As root, Add line to /etc/inetd.conf as above, substituting your net's domain name for podunk.edu, and your chosen directory for /etc/horton. Cause it to take effect by sending inetd a kill -HUP. 6. Run whois -h localhost @ to verify that daemon is handling requests. 7. Add lines to invoke hourly.sh and monthly.sh as above to pseudouser's crontab with crontab -e horton, substituting your net's domain name for podunk.edu, and your chosen directory for /etc/horton. 8. If any sysops complain about Horton's incessant fingering, and wish to be excluded from the directory, add their name or internet address to hosts.exclude, and delete them from hosts.poll. 9. If some hosts are e-mail clients of another host, and you wish to reduce the ambiguity of the directory, add clientname-servername pairs to hosts.xlat.BUGS Entries are never purged from hourly.out. Works with the finger output I've seen, but might not work with other finger daemons. Probably relies on something found only on Suns. Relies on DNS being installed; if you're not using the DNS, you will have to rewrite ls_hosts.sh or bypass monthly.sh entirely by maintaining hosts.poll manually. Relies on domain name always being the same case! This can cause the output file to contain entries that are not stripped of the domain name.AUTHOR Dan Kegel (dank@blacks.jpl.nasa.gov)::::::::::::::pgms/horton/dot.plan::::::::::::::Horton is the keeper of the whois database on HOSTNAME.Whois is an e-mail directory service.To look up somebody's e-mail address, type whois -h HOSTNAME search_keyOn VMS systems with Multinet TCP/IP, type whois /host=HOSTNAME search_keyA Macintosh MacTCP version of finger was written by Peter Lewis,peter@cujo.curtin.edu.au, and should be available at an FTP site near you.The search key can be a whole name, or just a fragment of a name.If there are no matches, nothing will be printed; try a shorterfragment.When Horton wants to update its idea of what hosts should be polled to generate the whois database, it runs a probe script which fingers and sends mail thru each site; the sites that respond to both requests are placed in the list of sites to poll.To prevent Horton from probing your machine in any way, or toreport any problems, send a message to E-MAIL-ADR, or call TELEPHONE_NUMBER. Do not send mail to Horton, it will be discarded.</text>
</content>
<name></name>
<script></script>
</card>
card_13830.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>How can I add headers that don't appear in outgoing mail windows to mail I send?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>If you want to add headers to all your outgoing mail, you can put them in STR# resource id 4400. Eudora will send each string in this resource before it sends the real headers.Suppose, for example, you want everyone to know you use Eudora, and you don't like Broccoli. You would put two strings in the resource:X-Mailer: EudoraX-HatedFood: BroccoliEudora will add returns for you; don't put them in the resource.</text>
</content>
<name></name>
<script></script>
</card>
card_13554.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text><span class="style3">es.Put the full pathname of your maildrop, preceded by a !, in the POP Account:!mac:uupcincoming:mail:dornerIn the SMTP Server field, put your mac's hostname, your UUCP relay's hostname, the full pathname of the UUCP spool directory, your username, and a four digit number, separated by !'s:!yourmac!relay!mac:uupcoutgoing:!username!0000For more info, see Appendix F of the Eudora Manual.</span></text>
</content>
<name></name>
<script></script>
</card>
card_4192.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>My POP server says "-ERR Maildrop lock busy" or somesuch crud. What do I do?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text><span class="style5">his happens when your POP server and your Macintosh lose their connection for some reason. It's relatively easy to fix. Login to your POP server system and type 'ps x'. (Some systems use 'ps e' instead). You'll see something like this:</span><span class="style6">% </span><span class="style7">ps x</span><span class="style6"> PID TT STAT TIME COMMAND15387 ? IW 0:00 popper15494 qK S 0:01 -csh[dorner] (csh)</span><span class="style5">Now, type 'kill -9 theFirstNumberOnThePopperLine':</span><span class="style6">% </span><span class="style7">kill -9 15387</span><span class="style6"></span><span class="style5">That will fix the problem. If your eyes are glassy now, show this to a UNIX guru.</span></text>
</content>
<name></name>
<script></script>
</card>
card_4835.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>I'm trying to use Serial Eudora, and I keep getting "Serial Port in Use", even after I quit Eudora.</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>You must use version 1.1 or later of the Apple Modem Tool, or use the Hayes Modem Tool. Neither the PowerBook Modem Tool nor version 1.0 of the Apple Modem Tool will work with Eudora.</text>
</content>
<name></name>
<script></script>
</card>
card_7698.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUpgo to card id 8403end mouseUp</script>
</part>
<content>
<layer>background</layer>
<id>2</id>
<text>I'm trying to use Serial Eudora, and everything works except attachments; I usually get "Attachment corrupted; it was too short."</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>You don't have flow control configured properly.In general, if you don't have at least MNP-4 on your modems, you're not going to be able to do attachments with serial Eudora.You might try SLIP instead.</text>
</content>
<name></name>
<script></script>
</card>
card_8696.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>I don't have any domain name servers. What do I do?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>Use TeachText to create a file named "Hosts" in your System Folder. In it, list you hostnames and their addresses:stonetablet.oldfashioned.com A 198.143.4.1outhouse.oldfashioned.com A 198.143.2buggy.oldfashioned.com A 198.143.1.3</text>
</content>
<name></name>
<script></script>
</card>
card_8403.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>SLIP stands for Serial Line IP; it lets MacTCP work over phone lines. If your dialins support SLIP, it's a very nice thing to do; you can use Eudora, NCSA Telnet, Fetch, etc, just like you were connected directly to the Internet.There are three flavors of SLIP for the Mac:MacSLIP, $49.95 (info@hydepark.com)VersaTerm, ~$90 (at any mailorder house)InterSLIP, (info@intercon.com)</text>
</content>
<name></name>
<script></script>
</card>
card_8753.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>When I try to check mail, it says "Connection came up halfway then failed."</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>You probably don't have a POP3 server installed. For UNIX sites, try popper, available for anonymous ftp from ftp.cc.berkeley.edu. If VMS is your affliction, you can try Multinet, or IUPOP3 from ftp.indiana.edu, /pub/vms/iupop3. VM/CMS sufferers can try Charley Kline's popper port, which can be had from vmd.cso.uiuc.edu (cd to the "POPD" directory.</text>
</content>
<name></name>
<script></script>
</card>
card_9180.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>My messages keep showing up without any headers. I see ???@???, and I can't reply. The mail looks fine on the server.</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text><span class="style1">here are two things I know of that can cause this.VMS TGV Mulinet:</span><span class="style9">Normally the SMTP headers normally in the the text of the VMS MAIL message and those are sent. You apparently have PMDF configured not to include those headers. There is a new flag that will be in documented for MultiNet 3.2 You can $define/sys/exec multinet_pop3_flags 64If you already have multinet_pop3_flags defined add 64 to the value. This will build headers from the VMS from line and not expect any SMTP headers in the mail message.</span><span class="style1">UNIX Elm:</span><span class="style9">ELM has one option DONT_ADD_FROM in its configuration file. If that is defined (default) then no From: line shows up in the mail header and Eudora cant find it. All that need be done is to edit config.h and undefine DONT_ADD_FROM. Then Eudora (and all the other well behaved mailers work correctly)..</span><span class="style1">Thanks to Jeffrey Busma and Noel Petit for these answers.</span></text>
</content>
<name></name>
<script></script>
</card>
card_10013.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<script>on mouseUp-- This script helps convert QuickMail 1.5 mail archives to Eudora 1.2.2 archives.-- To use it, run QuickMail and select all the files you want from a QuickMail folder and hit the Save button.-- Double click on "Mail" in the prompted file name, type the Eudora mailbox name you like for it.-- So the filename is "Saved maiboxname".-- Repeat for all the QM folders you want to transfer.-- Run this script, by clicking on the button. When prompted, type a right arrow-- (to get insertion to follow "Saved ") and then the mailboxname and return.-- A progress report shows up in the message box, and beeps signal completion. It takes about a second per mail message.-- When you have generated all the Eudora mailboxes by this conversion method, they don't have .toc files associated.-- Start up Eudora by double-clicking "In" in the folder containing the mailboxes. When you open mailboxes,-- Eudora will generate the needed .toc files based on its scan of the converted file.---- This will not transfer QuickMail attachments. I did that manually by looking for the symbols that identify them-- in the QM mail display, selecting them and either extracting them in QuickMail or by-- forwarding them to my new mail address. Eudora converts them on receipt.---- This is a kludge I wrote for handling a 1-time conversion of about 2000 mail messages.-- Not particularly elegant, and may need to be patched up to satisfy your own needs.-- Dave Gustavson, dbg@slac.stanford.edu 17Nov92---- states: (description is not precise)-- 1 at start of message, past the terminator and its following blank line-- scan for To and From lines, save each-- until hit empty line. Then optionally output a correct From line to help Eudora-- and go to state 2-- 2 copy input to output blindly until find terminator line and its following blank line-- skip over them and go to 1-- 3 output the Eudora separator line if the file wasn't empty, go to state 1 and process-- 4ask "Convert which file?" with "Stealth 2:Eudora docs:Saved " -- Change Drive etc to suit, leave "Saved " part ****-- the preceding line picks up the files you saved with QuickMailif it is empty then exit mouseUpput it into fileNameopen file fileNameput char offset("Saved ",fileName)+6 to length(fileName) of fileName into projectput "Stealth 2:Eudora Folder:" & project into fileName2 -- Change Drive etc to suit ****-- the preceding line should result in Eudora mailboxes being formed in the folder containing In and Out, for example.open file fileName2set the cursor to watch-- process and copy fileput "Dave Gustavson" into myFromName -- **** The form of my return addr in a From line that tells me I sent this oneput "Dave Gustavson, " into meForm1 -- **** One form of my return addr to eliminate from To linesput "dbg@SLAC.STANFORD.EDU, " into meForm2 -- **** Second form of my return addr to eliminate from To linesput 0 into counterput 3 into state -- found start of messagerepeatread from file fileName until returnif it is empty then exit repeatput it into quickreadput length(quickread) into lenQuickif state = 3 then-- Found end of message delimiter, finish up and replace it, then do state 1 processingput counter+1 into counter -- count mail filesput project &" = " & counterput 1 into state -- found start of messageput 0 into MayEOHput 0 into FromDateput empty into ToAddressput empty into FromAddresswrite "From ???@??? Thu Sep 27 07:03:52 1990" & return to file fileName2end ifif state = 1 then -- scan for To and From lines, remember themif " Reply to:" = (char 1 to 17 of quickread) then -- grab the subject infowrite "Subject: " & char 21 to length(quickread) of quickread to file fileName2if myFromName = char 1 to length(myFromName) of FromAddress thenwrite "From: >" & ToAddress to file fileName2end ifwrite return to file fileName2 -- end headers first with null lineput 2 into stateput 0 into MayEOHwrite quickread to file fileName2next repeatend ifif " Subject:" = (char 1 to 31 of quickread) then -- grab subject from next lineput quickread into save1read from file fileName until returnif it is empty then exit repeatput it into quickreadwrite "Subject: " & char 24 to 62 of quickread & return to file fileName2if myFromName = char 1 to length(myFromName) of FromAddress thenwrite "From: >" & ToAddress to file fileName2end ifwrite return to file fileName2 -- end headers first with null lineput 2 into stateput 0 into MayEOHwrite save1 to file fileName2write quickread to file fileName2next repeatend ifif ("GatorMail-Q" = (char 1 to 11 of quickread)) or ("Mail*Link" = (char 1 to 9 of quickread)) thenif FromDate = 0 thenput 0 into MayEOHnext repeatelse -- was a QM header ender, get subject off of itput 2 into statewrite "Subject: " & char 31 to length(quickread) of quickread to file fileName2if myFromName = char 1 to length(myFromName) of FromAddress thenwrite "From: >" & ToAddress to file fileName2end ifwrite return to file fileName2 -- end headers first with null lineput 0 into MayEOHnext repeatend ifend ifif MayEOH = 1 then -- previous null line was indeed the end of headersput 2 into stateif myFromName = char 1 to length(myFromName) of FromAddress thenwrite "From: >" & ToAddress to file fileName2end ifwrite return to file fileName2 -- end headers first with null lineput 0 into MayEOHend ifif "To: " = (char 1 to 4 of quickread) thenput char 5 to lenQuick of quickread into ToAddressput offset(meForm1,ToAddress) into iif i > 0 then -- remove myself from To listdelete char i to i+length(meForm1)-1 of ToAddressend ifput offset(meForm2,ToAddress) into iif i > 0 then -- remove myself from To listdelete char i to i+length(meForm2)-1 of ToAddressend ifrepeat while offset("(", ToAddress) > 0 -- eliminate some folks' darn parens in phone numbersdelete char offset("(", ToAddress) of ToAddressend repeatrepeat while offset(")", ToAddress) > 0 -- eliminate some folks' darn parens in phone numbersdelete char offset(")", ToAddress) of ToAddressend repeatend ifif "From: " = (char 1 to 6 of quickread) thenif (char lenQuick-3 of quickread = "9") and (char lenQuick-1 of quickread = ")") then-- From line ends in "9?)" so a plausible year, pick out the date and discard phone numbers etcput offset("(",quickread) into lparLocput lenQuick-2 into irepeat until char i of quickread = "(" or i = lparLocput i-1 into iend repeatwrite "Date: " & char i+1 to lenQuick-2 of quickread & return to file fileName2delete char lparLoc to lenQuick-1 of quickreadput char 7 to length(quickread) of quickread into FromAddressput 1 into FromDateelseput char 7 to lenQuick of quickread into FromAddressend if -- date extractend if -- From lineif (quickread = return) or (quickread = " " & return) thenput 1 into MayEOHnext repeatend if -- empty lineif quickread = "======================================================================" & return thenread from file fileName until return -- This was an unexpected end in header scan, skip following blank lineput 3 into statenext repeat -- go on without writing what we just readend ifelse if state = 2 thenif quickread = "======================================================================" & return thenread from file fileName until return -- skip following blank lineput 3 into statenext repeat -- go on without writing what we just readend ifend ifif quickread = " " & return then put return into quickread -- I found a lot of space-wasters from some sourceswrite quickread to file fileName2end repeat-- clean up and print statisticsput "Total " & project & " files written = " & counterclose file fileNameclose file fileName2beepbeepend mouseUp</script>
</part>
<content>
<layer>background</layer>
<id>2</id>
<text>I have some mail in QuickMail format. Can I convert it?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>This button has a script that may help. It was contributed by Dave Gustavson (thanks). You will have to know a little about HyperTalk to make it work for you.</text>
</content>
<name></name>
<script></script>
</card>
card_10571.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text><span class="style3">udora splits incoming messages into 24K pieces, if the message itself is over 26K. These constants can be adjusted (look for FRAGMENT_SIZE and SPLIT_THRESH in the Eudora Q&A stack), but they must not be set over 32K.The reason for the 32K limit is Macintosh TextEdit, which is limited to 32K. The reason Eudora splits well below the limit is to allow for quoting during replies and forwards, and suchlike.The pieces can be reassembled by selecting them all in a mailbox window and choosing "Save As..." from the "File" menu. Be sure to turn off "Include Headers". The resulting text file can be opened by a word processor or other application that can work with large text files.</span></text>
</content>
<content>
<layer>background</layer>
<id>2</id>
<text>Can I change the size at which Eudora splits messages? Why does Eudora split messages? How can I put split messages back together?</text>
</content>
<name></name>
<script></script>
</card>
card_11598.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>When I reply to a message, Eudora puts an "R" in the left column of the message summary. But if I delete the reply before I send it, the "R" stays. Is this a bug?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>No, it's a deficiency. Eudora just isn't smart enough to remember which original message the reply came from, so it can't go back and remove the "R" from it.I will fix this eventually, but it will require major surgery.</text>
</content>
<name></name>
<script></script>
</card>
card_11955.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>Where can I find a server for Eudora's "Change Password" menu item?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>Qualcomm is working on one. I also have the following three that were contributed by users:</text>
</content>
<content>
<layer>card</layer>
<id>1</id>
<text><span class="style8">osted-From: The MITRE Corporation, Bedford, MATo: sdorner@qualcomm.com (Steve Dorner)From: dll@mitre.org (Daniel L. Leavitt)Subject: Re: Change password server Date: Tue, 10 Nov 92 10:56:29 ESTSender: dll@mbunix.mitre.orgSteve, Here it is. This is the first such program I've ever written so I'd appreciateany constructive comments if anyone cares to send me any. -Dan--------------/* * poppassd.c Update passwords on the UNIX system from the Eudora "Change Password" * client. Keeps a log of change attempts in /etc/poppassd.log but * suppresses recording of passwords given by the client. * * Must be owned by root, and executable only by root. It can be started * with an entry in /etc/inetd.conf such as the following: * * poppassd stream tcp nowait root /usr/local/poppassd/poppassd poppassd * * and in /etc/services: * * ppassd 106/tcp * */#include <stdio.h>#include <string.h>#include <pwd.h>#include <signal.h>#include <unistd.h>#include <varargs.h>#include <sys/wait.h>#include <sys/socket.h>#include <netinet/in.h>#include <netdb.h>#include <sys/types.h>#include <sys/file.h>#include <time.h>#define PF_PLATE "./ptmpXXXXX" /* original temporary file */#define PF_TEMP "./ptmp" /* lock file */#define PW_CHANGED 0 /* a OK */#define PW_CANTLOCK -1 /* error code -- locking failed */#define PW_CANTOPEN -2 /* error code -- open failed */#define PW_CANTRENAME -3 /* error code -- rename failed */#define PW_NOCHANGE -4 /* error code -- no passwd entry */#define SUCCESS 1#define FAILURE 0#define BUFSIZE 255#define MAXARGS 32#define SUPPRESS 1#define FI_NULL ((FILE *) NULL) /* NULL file pointer */#define TI_NULL ((time_t *) NULL) /* NULL time pointer *//* * library functions */extern char *mktemp(); /* makes a temp file name *//* * global variables */char *pf_name = "passwd"; /* password file name */char *pf_tnam; /* name of temporary file */FILE *pf_fp; /* pointer to real password file */FILE *pf_tfp; /* pointer to temporary file */FILE *log;time_t gNow;char gDate[BUFSIZE];main (argc, argv)int argc;char *argv[];{ char line[BUFSIZE]; char user[BUFSIZE]; char pass[BUFSIZE]; char newpass[BUFSIZE]; char logFile[BUFSIZE]; struct passwd *pw; chdir( "/etc" ); sprintf(logFile, "/etc/%s.log", argv[0]); strcpy( user, "" ); strcpy( pass, "" ); strcpy( newpass, "" ); /* * Open the logfile for append */ if ( !( log = fopen( logFile, "a+" )) ) { WriteToClient( "500 Can't open %s.", logFile ); exit(1); } #if 0 The server's responses should be like an FTP server's responses; 1xx for in progress, 2xx for success, 3xx for more information needed, 4xx for temporary failure, and 5xx for permanent failure. Putting it all together, here's a sample conversation: S: 200 hello\r\n E: user yourloginname\r\n S: 300 please send your password now\r\n E: pass yourcurrentpassword\r\n S: 200 My, that was tasty\r\n E: newpass yournewpassword\r\n S: 200 Happy to oblige\r\n E: quit\r\n S: 200 Bye-bye\r\n S: <closes connection> E: <closes connection>#endif WhoAreYou(); WriteToClient( "200 hello, who are you?" ); ReadFromClient( line, 0 ); sscanf(line, "user %s", user) ; if ( strlen(user) == 0 ) { WriteToClient( "500 username required." ); exit(1); } WriteToClient( "200 your password please." ); ReadFromClient( line, SUPPRESS ); sscanf( line, "pass %s", pass) ; if ( strlen(pass) == 0 ) { WriteToClient( "500 password required." ); exit(1); } WriteToClient( "200 your new password please." ); ReadFromClient( line, SUPPRESS ); sscanf( line, "newpass %s", newpass ); /* new pass required */ if ( strlen(newpass) == 0 ) { WriteToClient( "500 new password required." ); exit(1); } /* new pass must be 6 char or longer */ else if ( strlen(newpass) < 6 ) { WriteToClient( "500 New password too short" ); exit(1); } /* new pass must be different from old pass */ else if ( !strcmp(pass, newpass) ) { WriteToClient( "500 New password must be different." ); exit(1); } /* test for valid user */ if ( (pw=getpwnam(user)) == NULL ) { WriteToClient( "500 Unknown user, %s.", user); exit(1); } /* authenticate user */ if ( chkPass( user, pass, pw ) == FAILURE ) { WriteToClient( "500 Authentication failure."); exit(1); } if ( setPass( user, pass, newpass, pw ) == FAILURE ) { WriteToClient( "500 Unable to change password." ); exit(1); } WriteToClient( "200 Password changed, thank-you." ); return(1);} WhoAreYou(){ struct sockaddr_in bobby; int bobbyLen = sizeof(struct sockaddr); struct passwd *pw; char *inet_ntoa(); char *ttyname(); fputs( "\n", log ); if (isatty(fileno(stdin))) { pw = getpwuid(getuid()); WriteLog( "Connection on %s by %s", ttyname(fileno(stdin)), pw->pw_name); } else if (lseek(fileno(stdin), 0, L_INCR) >= 0) { pw = getpwuid(getuid()); WriteLog( "Connection on FILE by %s", pw->pw_name); } else if (getpeername(fileno(stdin), (struct sockaddr *)&bobby, &bobbyLen) < 0) { pw = getpwuid(getuid()); WriteLog( "Connection on PIPE by %s", pw->pw_name); } else {# if defined(sparc) && __GNUC__ == 1 WriteLog( "NET connection from %s", inet_ntoa(&bobby.sin_addr));# else WriteLog( "NET connection from %s", inet_ntoa(bobby.sin_addr));# endif }}WriteToClient( va_alist )va_dcl{ va_list ap; char *fmt; char *args[MAXARGS]; int argno = 0; char string[BUFSIZE]; UpdateTime( ); va_start( ap ); fmt = va_arg(ap, char *); while ((args[argno++] = va_arg(ap, char *)) != (char *)0) ; vfprintf(stdout, fmt, args); fputs("\r\n", stdout ); fflush(stdout); vsprintf(string, fmt, args); WriteLog( "Server> %s", string ); va_end( ap );}ReadFromClient( line , suppress)char *line;int suppress;{ char *sp; int i; UpdateTime(); strcpy(line, "" ); fgets( line, BUFSIZE, stdin ); if (( sp = strchr(line, '\n')) != NULL ) *sp = '\0'; if (( sp = strchr(line, '\r')) != NULL ) *sp = '\0'; if ( suppress ) WriteLog( "Client> ..." ); else WriteLog( "Client> %s", line );}UpdateTime( ){ struct tm *date; gNow = time( NULL ); /* get current calendar time */ date = localtime( &gNow ); /* convert it to a broken-down time */ strftime( gDate, BUFSIZE, "%b %d %H:%M:%S", date );}WriteLog( va_alist )va_dcl{ va_list ap; char *fmt; char *args[MAXARGS]; int argno = 0; UpdateTime( ); va_start( ap ); fmt = va_arg(ap, char *); while ((args[argno++] = va_arg(ap, char *)) != (char *)0) ; fprintf( log, "%s: ", gDate ); vfprintf(log, fmt, args); fputs( "\n", log ); fflush(log); va_end( ap );}int chkPass( user, pass, pw )char *user;char *pass;struct passwd *pw;{ /* Compare the supplied password with the password file entry */ if (strcmp (crypt (pass, pw->pw_passwd), pw->pw_passwd) != 0) return ( FAILURE ); else return ( SUCCESS );}makesalt( c )char c[2]; /* salt characters */{ register long salt; /* used to compute a salt */ register int i; /* counter in a for loop */ /* * just mix a few things up for the salt ... * no rhyme or reason here */ salt = (((long) time(TI_NULL))&0x3f) | (getpid() << 5); /* * use the bottom 12 bits and map them into the legal alphabet */ for(i = 0; i < 2; i++){ c[i] = (salt & 0x3f) + '.'; if (c[i] > '9') c[i] += 7; if (c[i] > 'Z') c[i] += 6; salt >>= 6; }}setPass( user, pass, newpass, pw )char *user;char *pass;char *newpass;struct passwd *pw;{ char saltc[2]; /* the password's salt */ makesalt(saltc); strcpy( pw->pw_passwd, crypt(newpass, saltc)); if ( UpdatePasswordFile( pw ) == PW_CHANGED ) return (SUCCESS); else return (FAILURE);}UpdatePasswordFile(p)struct passwd *p; /* new password structure */{ char nbuf[BUFSIZ]; /* buffer for passwords being read */ char obuf[BUFSIZ]; /* buffer for new entry */ register char *q, *s; /* used for quick name comparison */ int retval = PW_NOCHANGE; /* return value */ /* * disable ALL signals at this point */ sigoff(); /* * open the temporary password file */ umask(022); pf_tnam = mktemp(PF_PLATE); if ((pf_tfp = fopen(pf_tnam, "w")) == FI_NULL){ retval = PW_CANTOPEN; goto cantlock; } /* * lock the password file */ if (link(pf_tnam, PF_TEMP) < 0){ retval = PW_CANTLOCK; goto cantlock; } /* * copy the new password structure */ sprintf(obuf, "%s:%s:%d:%d:%s:%s:%s\n", p->pw_name, p->pw_passwd, p->pw_uid, p->pw_gid, p->pw_gecos, p->pw_dir, p->pw_shell); /* * open the password file */ if ((pf_fp = fopen(pf_name, "r")) == FI_NULL){ retval = PW_CANTOPEN; goto getout; } /* * copy the password file into the temporary one */ while(fgets(nbuf, BUFSIZ, pf_fp) != NULL){ for(s = nbuf, q = p->pw_name; *s && *s != ':'; s++, q++) if (*s != *q) break; if (*s == ':' && *q == '\0') { fputs(obuf, pf_tfp); retval = PW_CHANGED; } else fputs(nbuf, pf_tfp); } if (retval == PW_NOCHANGE) { goto getout; } /* * close the temporary file and the real one */ (void) fclose(pf_tfp); pf_tfp = FI_NULL; (void) fclose(pf_fp); pf_fp = FI_NULL; /* * now relink; note the lock file is still there */ if ( unlink(pf_name) >= 0 && link(pf_tnam, pf_name) >= 0 && unlink(pf_tnam) >= 0){ retval = PW_CHANGED; } else retval = PW_CANTRENAME;getout: /* * Only remove lock file if this program obtained it */ (void) unlink(PF_TEMP); cantlock: /* some clean up */ if (pf_tfp != FI_NULL) (void) fclose(pf_tfp); if (pf_fp != FI_NULL) (void) fclose(pf_fp); (void) unlink(pf_tnam); sigon(); /* re-enable ALL signals at this point */ return(retval);}/* * signal handling routines */void (*trap[NSIG])(); /* values returned by signal() *//* * disable ALL signal trapping */sigoff(){ register int i; /* counter in a for loop */ for(i = 0; i < NSIG; i++) (void) signal(i, SIG_IGN);}/* * restore to the initial setting all signals */sigon(){ register int i; /* counter in a for loop */ for(i = 0; i < NSIG; i++) (void) signal(i, trap[i]);}</span></text>
</content>
<content>
<layer>card</layer>
<id>3</id>
<text>To: sdorner@qualcomm.comSubject: Password daemon for MH/EudoraOrganisation: BNR Europe, HARLOW, Essex CM17 9NA, GBPhone: +44 279 402423From: Andrew Macpherson (Postmaster) <A.Macpherson@bnr.co.uk>Steve,Thanks for helping John Bingham out so much. Since you've added a passwordchanger, here is a daemon for those sites which use MH bpop (ie pop supportfor non unix users from a unix host). If it doesn't work the way you wantI'll happily make changes.#!/usr/bin/perl## Author Andrew Macpherson# <A.Macpherson@bnr.co.uk># /DD.ID=1248566/G=Andrew/S=Macpherson/PRMD=BNR/ADMD= /C=GB/# to support the eudora password change protocol## Entry for /etc/services:# epass 106/tcp # And for /etc/inetd.conf:# epass stream tcp nowait pop /path/to/in.poppass## $Header: /tmp_mnt/u/andrew/andrew/src/poppass/RCS/in.poppass,v 1.4 14/11/92 16:29:12 andrew Exp $## $Log: in.poppass,v $# Revision 1.4 14/11/92 16:29:12 andrew# Inetd looping with wait, admin features not so usefull# # Revision 1.3 14/11/92 15:32:42 andrew# Add admin password reset capability# # Revision 1.2 14/11/92 15:05:21 andrew# Off by 1 report of existing accounts.# # Make use of the locking given by only allowing 1 daemon to# add users without losing password changes.# # Revision 1.1 14/11/92 14:10:23 andrew# Initial revision# $| = 1;$Id = '$Id: in.poppass,v 1.4 14/11/92 16:29:12 andrew Exp $';$perl = '/usr/bin/perl' ; # Used in system() later$MyName="POPpass" ;require "syslog.pl";&openlog($MyName,"pid,cons,nowait", "auth");$\ = "\r\n" ; # Set output seperator for chitchat over tcpchop( $host=`hostname` );( $me, $pop_pass, $b, $c, $d, $e, $f, $dir, $g ) = getpwnam("pop") ;if ( ! $dir || ! -w $dir . '/POP' || ! chdir($dir) ) { print "420 Configuration error, please tell postmaster@$host" ; &syslog("notice", "Cannot access ${dir}/POP"); &closelog(); die;}print "200 hello $host POP password service" ;$user = '';$curcrypt = '' ;$newcrypt = '' ;while(<>) { chop; ( $action, $arg, $extra ) = split(/\s+/, $_); if ( $action =~ m/^user$/i ) { $user = $arg ; $curcrypt = '' ; print "300 Hello $arg, please prove it with your password" ; } elsif ( $action =~ m/^pass$/i ) { $curcrypt = '' ; if ( $user eq '' ) { print "400 I need to know who you claim to be first" ; next ; } &ValidUser($user, $arg) ; # Sets $curcrypt if true if ($curcrypt eq '') { &syslog('notice', "invalid POP password offered for $user"); sleep(20); # Slow him down print "500 Imposter! I have issued a security alert" ; last; } if ( $user eq 'pop' ) { print "200 Hail Oh great and glorious leader" ; } else { print "200 Ok, Now I believe you are $user" ; } &syslog('info', "POP user $user validated"); } elsif ( $action =~ m/^newpass$/i ) { if ( $user eq '' ) { print "400 Who are you? Logon with USER and PASS first" ; next ; } if ( $curcrypt eq '' ) { print "401 Until you give me your old password," . " I have to believe you are an Imposter"; next ; } if (crypt($arg, $curcrypt) eq $curcrypt) { print "402 No it isn't, it's the same" ; next; } $newcrypt = crypt($arg, substr($curcrypt,1,2)); $ok = system("$perl -pi.bak " . "-e 's:$curcrypt:$newcrypt: if m/^$user:/ ;' POP" ) ; if ( $ok / 256 ) { print "500 Sorry, update failed" ; } else { print "200 OK"; $curcrypt = $newcrypt ; } } elsif ( $action =~ m/^quit$/i ) { print "200 $host, Glad to help" ; last ; } elsif ( $action =~ m/^status$/i ) { print "200 " . ($user eq '' ? "no user" : "user $user") . ($curcrypt eq '' ? ' not' : '') . ' authenticated' ; } elsif ( $action =~ m/^version$/i ) { print "200 $MyName $Id" ; } elsif ( $action =~ m/^help$/i ) { print "200 Supported actions:" . " USER PASS NEWPASS HELP QUIT STATUS VERSION" . (( $user eq 'pop' && $curcrypt ne '') ? " NEWUSER SETPASS" : ""); } elsif ( $user eq 'pop' && $curcrypt ne '' && $action =~ m/^newuser$/i ) { if ( $arg ne '' && $extra ne '' ) { &NewUser($arg, $extra) ; } else { print "400 Newuser user pass" ; } } elsif ( $user eq 'pop' && $curcrypt ne '' && $action =~ m/^setpass$/i && $arg ne '' && $extra ne '' ) { $newcrypt = crypt($extra, substr($curcrypt,1,2)); $ok = system("$perl -pi.bak " . "-e 's|$arg::$arg.*|$arg::$arg:$newcrypt::::::0| ;' POP" ) ; if ( $ok / 256 ) { print "500 Sorry, update failed" ; } else { print "200 OK"; $curcrypt = $newcrypt ; } } else { print "400 I don't understand '$action' try help" ; }}&closelog();exit 0;sub ValidUser { local($user, $pass) = @_ ; if ( $user eq 'pop' ) { $curcrypt = $pop_pass if (crypt($pass, $pop_pass) eq $pop_pass); return ; } $curcrypt = ''; # Just in case open(POP, '<' . "POP") ; @entry = grep(/^$user:/, <POP>); close POP; if ($#entry == -1) { &syslog('notice', "POP user $user does not exist"); return; } if ($#entry != 0) { $accts = $#entry + 1; print "520 there are $accts POP accounts for $user" ; &syslog('notice', "POP user $user has $accts accounts"); &closelog(); exit 1; } $entry = shift(@entry); ( $a, $b, $c, $ppass, @rest) = split(/:/, $entry) ; $curcrypt = $ppass if (crypt($pass, $ppass) eq $ppass);}sub NewUser { local($user, $pass) = @_ ; open(POP, '<' . "POP") ; @entry = grep(/^$user:/, <POP>); close POP; if ($#entry != -1) { &syslog('notice', "POP user $user already exists"); print "500 $user exists" ; return ; } open(POP, '>>' . 'POP') ; printf POP "$user::$user:" . crypt($pass, '//') . "::::::0\n" ; close POP ; print "200 $user added" ;}__END__This program was written to support Steve Dorner's Eudora program passwordchanging routine for systems using the MH/pop.It is released for general use.Andrew Macpherson reserves and asserts the right to be known as theauthor of this work.</text>
</content>
<content>
<layer>card</layer>
<id>4</id>
<text>#!/bin/sh# This is a shell archive (shar 3.32)# made 02/11/1993 21:23 UTC by dorner@ux1.cso.uiuc.edu# Source directory /cso/staff/dorner## existing files WILL be overwritten## This shar contains:# length mode name# ------ ---------- ------------------------------------------# 15723 -rw-r--r-- poppassd.c# 2030 -rw-r--r-- Makefile#if touch 2>&1 | fgrep 'amc' > /dev/null then TOUCH=touch else TOUCH=truefi# ============= poppassd.c ==============echo "x - extracting poppassd.c (Text)"sed 's/^X//' << 'SHAR_EOF' > poppassd.c &&X/*X * poppassd.cX * X * Daemon to service Eudora "Change Password" requests. This programX * doesn't actually change any passwords itself. It simply listens forX * incomming requests, gathers the required information (user name, oldX * password, new password) and executes /bin/passwd, talking to it overX * a pseudo-terminal pair. The advantage of this is that we don't needX * to have any knowledge of either the password file format (which mayX * include dbx files that need to be rebuilt) or of any file lockingX * protocol /bin/passwd and cohorts may use (and which isn't documented).X *X * Note that unencrypted passwords are transmitted over the network. IfX * this bothers you, think hard about whether you want to implement Eudora'sX * password changing feature. On the other hand, it's no worse than whatX * happens when you run /bin/passwd while connected via telnet or rlogin.X * Well, maybe it is, since the use of a dedicated port makes it slightlyX * easier for a network snooper to snarf passwords off the wire.X *X * NOTE: In addition to the security issue outlined in the above paragraph,X * you should be aware that this program is going to be run as root byX * ordinary users and it mucks around with the password file. This shouldX * set alarms off in your head. I think I've devised a pretty foolproofX * way to ensure that security is maintained, but I'm no security expert andX * you would be a fool to install this without first reading the code andX * ensuring yourself that what I consider safe is good enough for you. IfX * something goes wrong, it's your fault, not mine.X *X * This is an adaptation of a server by the same name from dll@mitre.orgX * (Daniel L. Leavitt of The MITRE Corporation). The front-end code (whichX * talks to the Eudora client) is directly descended from his originalX * version. The back-end stuff (which talks to /bin/password) is mine.X * X * Should be owned by root, and executable only by root. It can be startedX * with an entry in /etc/inetd.conf such as the following:X *X * poppassd stream tcp nowait /usr/etc/poppassd poppassdX * X * and in /etc/services:X * X * ppassd 106/tcpX *X * Roy Smith <roy@nyu.edu>X * Department of Microbiology,X * NYU School of MedicineX * 550 First AvenueX * New York, NY 10016X */XX/* The server's responses should be like an FTP server's responses; X * 1xx for in progress, 2xx for success, 3xx for more informationX * needed, 4xx for temporary failure, and 5xx for permanent failure. X * Putting it all together, here's a sample conversation:X *X * S: 200 hello\r\nX * E: user yourloginname\r\nX * S: 300 please send your password now\r\nX * E: pass yourcurrentpassword\r\nX * S: 200 My, that was tasty\r\nX * E: newpass yournewpassword\r\nX * S: 200 Happy to oblige\r\nX * E: quit\r\nX * S: 200 Bye-bye\r\nX * S: <closes connection>X * E: <closes connection>X */XX#define SUCCESS 1X#define FAILURE 0X#define BUFSIZE 512X#define MAXARGS 32X#define SUPPRESS 1XX#include <sys/types.h>X#include <sys/stat.h>X#include <sys/ioctl.h>X#include <sys/wait.h>X#include <unistd.h>X#include <fcntl.h>X#include <syslog.h>X#include <sgtty.h>X#include <stdlib.h>X#include <stdio.h>X#include <ctype.h>X#include <strings.h>X#include <errno.h>X#include <varargs.h>X#include <pwd.h>XXmain (argc, argv)Xint argc;Xchar *argv[];X{X char line[BUFSIZE];X char user[BUFSIZE];X char oldpass[BUFSIZE];X char newpass[BUFSIZE];X char logFile[BUFSIZE];X char *slavedev;X struct passwd *pw, *getpwnam();X int c, master;X pid_t pid, wpid;X union wait wstat;X X chdir ("/etc" );X strcpy (user, "" );X strcpy (oldpass, "" );X strcpy (newpass, "" );X X if (openlog ("poppassd", LOG_PID) < 0)X {X WriteToClient ("500 Can't open syslog.");X exit (1);X }X X WriteToClient ("200 hello, who are you?");X ReadFromClient (line);X sscanf (line, "user %s", user) ;X if (strlen (user) == 0)X {X WriteToClient ("500 username required.");X exit(1);X }XX WriteToClient ("200 your password please.");X ReadFromClient (line);X sscanf (line, "pass %s", oldpass) ;X if (strlen (oldpass) == 0)X {X WriteToClient ("500 password required.");X exit(1);X }X X if ((pw = getpwnam (user)) == NULL)X {X WriteToClient ("500 Unknown user, %s.", user);X exit(1);X }XX if (chkPass (user, oldpass, pw) == FAILURE)X {X WriteToClient ("500 Authentication failure.");X exit(1);X }XX WriteToClient ("200 your new password please.");X ReadFromClient (line);X sscanf (line, "newpass %s", newpass);X X /* new pass required */X if (strlen (newpass) == 0)X {X WriteToClient ("500 new password required.");X exit(1);X }X X /* new pass must be 6 char or longer */X if (strlen (newpass) < 6 )X {X WriteToClient ("500 New password too short");X exit(1);X }X X /* new pass must be different from old pass */X if (!strcmp (oldpass, newpass))X {X WriteToClient ("500 New password must be different.");X exit(1);X }XX /* get pty to talk to password program */X if ((master = findpty (&slavedev)) < 0)X {X syslog (LOG_ERR, "can't find pty");X exit (1);X }X X /* fork child process to talk to password program */X if ((pid = fork()) < 0) /* Error, can't fork */X {X syslog (LOG_ERR, "can't fork for passwd: %m");X WriteToClient ("500 Server error (can't fork passwd), get help!");X return (0);X }XX if (pid) /* Parent */X {X sleep (1); /* Make sure child is ready. Is this really needed? */X if (talktochild (master, user, oldpass, newpass) == FAILURE)X {X syslog (LOG_ERR, "failed attempt by %s", user);X WriteToClient ("500 Unable to change password." );X exit(1);X }XX if ((wpid = waitpid (pid, &wstat, 0)) < 0)X {X syslog (LOG_ERR, "wait for /bin/passwd child failed: %m");X WriteToClient ("500 Server error (wait failed), get help!");X exit (1);X }XX if (pid != wpid)X {X syslog (LOG_ERR, "wrong child (/bin/passwd waited for!");X WriteToClient ("500 Server error (wrong child), get help!");X return (0);X }XX if (WIFEXITED (wstat) == 0)X {X syslog (LOG_ERR, "child (/bin/passwd) killed?");X WriteToClient ("500 Server error (funny wstat), get help!");X exit (1);X }XX if (WEXITSTATUS (wstat) != 0)X {X syslog (LOG_ERR, "child (/bin/passwd) exited abnormally");X WriteToClient ("500 Server error (abnormal exit), get help!");X exit (1);X }XX if (hashpass() == 0)X exit (1);XX syslog (LOG_ERR, "password changed for %s", user);X WriteToClient ("200 Password changed, thank-you.");X exit (0);X }X else /* Child */X {X /*X * Become the user trying who's password is being changed. We'reX * about to exec /bin/passwd with is setuid root anyway, but thisX * way it looks to the child completely like it's being run byX * the normal user, which makes it do its own password verificationX * before doing any thing. In theory, we've already verified theX * password, but this extra level of checking doesn't hurt. Besides,X * the way I do it here, if somebody manages to change somebodyX * else's password, you can complain to your vendor about securityX * holes, not to me!X */X setuid (pw->pw_uid);X setgid (pw->pw_gid);X dochild (slavedev, user);X }X}XXdochild (slavedev, user)Xchar *slavedev, *user;X{X int fd, fdmax, slave;X struct sgttyb sgbuf;XX /*X * Get rid of control terminal andX * close all open file descriptors.X */X fd = open ("/dev/tty", O_RDWR, 0);X ioctl (fd, TIOCNOTTY, 0);X X fdmax = sysconf (_SC_OPEN_MAX);X for (fd = 0; fd < fdmax; fd++)X close (fd);XX /*X * Open slave side of pty (which now becomes the control terminal).X * Set appropriate tty modes and make sure stdin, stdout, and stderrX * are all connected to it.X */X if ((slave = open (slavedev, O_RDWR)) < 0)X {X syslog (LOG_ERR, "Can't open slave pty %s: %m", slavedev);X return (0);X }X X ioctl (slave, TIOCGETP, &sgbuf);X sgbuf.sg_flags = ANYP;X ioctl (slave, TIOCSETP, &sgbuf);XX dup2 (slave, 0);X dup2 (slave, 1);X dup2 (slave, 2);XX /*X * This is probably just paranoia; if all fds are closed, slaveX * should be fd 0. In that case, the dup2 (slave, 0) above is X * also just being paranoid.X */X if (slave > 2)X (void) close(slave);XX /*X * Execute the "real" password program, which should now thinkX * it is talking to a normal user on a normal tty port.X */X execl ("/bin/passwd", "passwd", user, (char *) 0);XX /*X * We only reach here if execl fails! It's not 100% clear whatX * to do at this point. We can no longer talk to the client sinceX * we no longer have the client socket open. Just log a syslogX * message (and hope its gets logged, since it's not clear whatX * evil things closing the syslog fd has done!) and count on theX * parent process to realize we've died.X */X openlog ("poppassd (child)", LOG_PID);X syslog (LOG_ERR, "can't execl /bin/passwd: %m");X exit (1);X}XX/*X * findpty()X *X * Finds the first available pseudo-terminal master/slave pair. The masterX * side is opened and a fd returned as the function value. A pointer to theX * name of the slave side (i.e. "/dev/ttyp0") is returned in the argument,X * which should be a char**. The name itself is stored in a static buffer.X *X * A negative value is returned on any sort of error.X */Xfindpty (slave)Xchar **slave;X{X int c, i, master;X static char *line;X struct stat statbuf;X X for (c = 'p'; c <= 's'; c++)X {X line = "/dev/ptyXX";X line[sizeof("/dev/pty")-1] = c;X line[sizeof("/dev/ptyp")-1] = '0';X if (stat (line, &statbuf) < 0)X break;X X for (i = 0; i < 16; i++)X {X line[sizeof("/dev/ptyp")-1] = "0123456789abcdef"[i];X if ((master = open(line, O_RDWR)) >= 0)X goto found_pty;X }X }XX syslog(LOG_ERR, "All network ports in use");X return (-1);XX found_pty:X line[sizeof("/dev/")-1] = 't'; /* "/dev/ptyp0" --> "/dev/ttyp0" */X *slave = line;X return (master);X}XX/*X * writestring()X *X * Write a string in a single write() system call.X */Xwritestring (fd, s)Xchar *s;X{X int l;XX l = strlen (s);X write (fd, s, l);X}XX/*X * talktochild()X *X * Handles the conversation between the parent and child (password program)X * processes. This is where you want to customize the conversation script.X *X * Returns SUCCESS is the conversation is completed without any problems,X * FAILURE if any errors are encountered (in which case, it can be assumedX * that the password wasn't changed).X */Xtalktochild (master, user, oldpass, newpass)Xint master;Xchar *user, *oldpass, *newpass;X{X int n;X char buf[500];XX sprintf (buf, "Changing password for %s\n", user);X if (!expect (master, buf))X return (FAILURE);XX if (!expect (master, "Old password: "))X return (FAILURE);X X sprintf (buf, "%s\n", oldpass);X writestring (master, buf);XX if (!expect (master, "\n") || !expect (master, "Enter new password: "))X return (FAILURE);XX sprintf (buf, "%s\n", newpass);X writestring (master, buf);XX if (!expect (master, "\n") || !expect (master, "Verify: "))X return (FAILURE);XX writestring (master, buf);X if (!expect (master, "\n") || !expect (master, ""))X return (FAILURE);XX return (SUCCESS);X}XX/*X * expect ()X *X * Read the next line and check to make sure it is an exact match forX * the string expected, including newlines. If the expected string isX * empty, it's considered to match either EOF, or getting an EWOULDBLOCKX * error, which would typically occur if the child has already exited.X *X * A syslog error message is generated and expect returns 0 on any errorX * or mismatch. If the expected string is found, expect() returns 1.X */Xexpect (fd, s)Xint fd;Xchar *s;X{X int n;X char buf[1000];X extern int errno;XX if ((n = read (fd, buf, 999)) < 0)X {X if (errno == EWOULDBLOCK && *s == NULL)X return (1);X X syslog (LOG_ERR, "read error from child: %m");X return (0);X }XX buf[n] = 0;X if (strcmp (s, buf) != 0)X {X syslog (LOG_ERR, "wrong response from child --");X syslog (LOG_ERR, "expected %s", s);X syslog (LOG_ERR, "got %s", buf);X return (0);X }X X return (1);X}XXWriteToClient (va_alist)Xva_dclX{X va_list ap;X char *fmt; X char *args[MAXARGS];X int argno = 0;X char string[BUFSIZE];X X va_start (ap);X fmt = va_arg (ap, char *);X while ((args[argno++] = va_arg(ap, char *)) != (char *)0)X ;XX vfprintf (stdout, fmt, args);X fputs ("\r\n", stdout );X fflush (stdout);XX vsprintf (string, fmt, args);XX va_end (ap);X}XXReadFromClient (line)Xchar *line;X{X char *sp;X int i;XX strcpy (line, "");X fgets (line, BUFSIZE, stdin);X if ((sp = strchr(line, '\n')) != NULL) *sp = '\0'; X if ((sp = strchr(line, '\r')) != NULL) *sp = '\0'; X}XXint chkPass (user, pass, pw)Xchar *user;Xchar *pass;Xstruct passwd *pw;X{X /* Compare the supplied password with the password file entry */X if (strcmp (crypt (pass, pw->pw_passwd), pw->pw_passwd) != 0)X return (FAILURE);X else X return (SUCCESS);X}XX/*X * hashpass()X *X * Execute mkpasswd to build the hashed (dbx) passwd files.X */Xhashpass()X{X pid_t pid, wpid;X union wait wstat;X int fd;XX /* fork child process to talk to run mkpasswd */X if ((pid = fork()) < 0) /* Error, can't fork */X {X syslog (LOG_ERR, "can't fork for mkpassd: %m");X WriteToClient ("500 Server error (can't fork mkpasswd), get help!");X return (0);X }XX if (pid) /* Parent */X {X if ((wpid = waitpid (pid, &wstat, 0)) < 0)X {X syslog (LOG_ERR, "wait for mkpasswd child failed: %m");X WriteToClient ("500 Server error (wait failed), get help!");X return (0);X }XX if (pid != wpid)X {X syslog (LOG_ERR, "wrong child waited for in hashpass()!");X WriteToClient ("500 Server error (wrong child), get help!");X return (0);X }XX if (WIFEXITED (wstat) == 0)X {X syslog (LOG_ERR, "child (mkpasswd) killed?");X WriteToClient ("500 Server error (funny wstat), get help!");X return (0);X }XX if (WEXITSTATUS (wstat) != 0)X {X syslog (LOG_ERR, "child (mkpasswd) exited abnormally");X WriteToClient ("500 Server error (abnormal exit), get help!");X return (0);X }XX return (1); /* mkpasswd executed normally */X }X else /* Child */X {X /*X * Making stdout and stderr /dev/null keeps mkpasswd messages (suchX * as the one that says "669 password entries, maximum length 125")X * from being visible to the client. If you are doing debugging,X * just change /dev/null to /tmp/mkpasswd.std{out,err}, or whatever.X */X close (1);X fd = open ("/dev/null", O_RDWR, 0);X if (fd != 1)X {X dup2 (fd, 1);X close (fd);X }X close (2);X fd = open ("/dev/null", O_RDWR, 0);X if (fd != 2)X {X dup2 (fd, 2);X close (fd);X }XX execl ("/etc/mkpasswd", "mkpasswd", "/etc/passwd", (char *) 0);XX /*X * We only reach here if execl fails!X */X syslog (LOG_ERR, "can't execl /etc/mkpasswd: %m");X WriteToClient ("500 Server error (can't exec mkpasswd), get help!");X exit (1);X }X}SHAR_EOF$TOUCH -am 0211152293 poppassd.c &&chmod 0644 poppassd.c ||echo "restore of poppassd.c failed"set `wc -c poppassd.c`;Wc_c=$1if test "$Wc_c" != "15723"; then echo original size 15723, current size $Wc_cfi# ============= Makefile ==============echo "x - extracting Makefile (Text)"sed 's/^X//' << 'SHAR_EOF' > Makefile &&XBINDIR = /usr/etcXLIBDIR = XCFLAGS = -gXLFLAGS = -gXCCM = cc -EmXXOBJECTS = poppassd.oXLIBS =XXpoppassd: $(OBJECTS)X cc -o poppassd $(LFLAGS) $(OBJECTS) $(LIBS)XXinstall: poppassdX install -g bin -o root -m 500 poppassd $(BINDIR)XXclean:X rm -f *.o *~* core Makefile.new Makefile.bak poppassdXXdepend:X cp Makefile Makefile.oldX sed -n -e "/^BINDIR =/s|=.*|= $(BINDIR)|" \X -e "/^LIBDIR =/s|=.*|= $(LIBDIR)|" \X -e "/^CFLAGS =/s|=.*|= $(CFLAGS)|" \X -e "/^LFLAGS =/s|=.*|= $(LFLAGS)|" \X -e "/^CCM =/s|=.*|= $(CCM)|" \X -e "1,/^# DO NOT DELETE THIS LINE/p" \X Makefile > Makefile.newX for i in $(OBJECTS); do \X echo; \X cfile=`basename $$i .o`.c; \X $(CCM) $$cfile; \X echo ' cc -c' '$$(CFLAGS)' "$$cfile"; \X done >> Makefile.newX mv Makefile.new MakefileXX# DO NOT DELETE THIS LINE -- make depend uses itXXpoppassd.o: poppassd.cXpoppassd.o: /usr/include/sys/types.hXpoppassd.o: /usr/include/ansi_compat.hXpoppassd.o: /usr/include/sys/stat.hXpoppassd.o: /usr/include/ansi_compat.hXpoppassd.o: /usr/include/sys/ioctl.hXpoppassd.o: /usr/include/ansi_compat.hXpoppassd.o: /usr/include/sys/ttychars.hXpoppassd.o: /usr/include/sys/ttydev.hXpoppassd.o: /usr/include/sys/ttyio.hXpoppassd.o: /usr/include/sgtty.hXpoppassd.o: /usr/include/ansi_compat.hXpoppassd.o: /usr/include/unistd.hXpoppassd.o: /usr/include/fcntl.hXpoppassd.o: /usr/include/sys/file.hXpoppassd.o: /usr/include/ansi_compat.hXpoppassd.o: /usr/include/sys/types.hXpoppassd.o: /usr/include/syslog.hXpoppassd.o: /usr/include/sgtty.hXpoppassd.o: /usr/include/stdlib.hXpoppassd.o: /usr/include/ansi_compat.hXpoppassd.o: /usr/include/stdio.hXpoppassd.o: /usr/include/ansi_compat.hXpoppassd.o: /usr/include/ctype.hXpoppassd.o: /usr/include/strings.hXpoppassd.o: /usr/include/errno.hXpoppassd.o: /usr/include/varargs.hXpoppassd.o: /usr/include/ansi_compat.hXpoppassd.o: /usr/include/stamp.hXpoppassd.o: /usr/include/ansi_compat.hXpoppassd.o: /usr/include/pwd.hXpoppassd.o: /usr/include/ansi_compat.hXpoppassd.o: /usr/include/sys/types.hX cc -c $(CFLAGS) poppassd.cSHAR_EOF$TOUCH -am 0211152393 Makefile &&chmod 0644 Makefile ||echo "restore of Makefile failed"set `wc -c Makefile`;Wc_c=$1if test "$Wc_c" != "2030"; then echo original size 2030, current size $Wc_cfiexit 0</text>
</content>
<name></name>
<script></script>
</card>
card_14953.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>The mail transport system around here puts a lot of stupid junk in mail headers. Can I make Eudora filter it out?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>Sure. Use ResEdit to copy STR# resource id 3200 from Eudora into your Eudora Settings file, and then add strings to the resource. Each string is another header to ignore. Eudora matches on initial substrings only, and is case-insensitive. So if, for example, you wanted to get rid of every header beginning with "X-", you could just put "x-" into one of the strings in STR# resource id 3200.</text>
</content>
<name></name>
<script></script>
</card>
card_15645.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>I don't seem to get as much feedback from Communications Tools when I use Eudora as I do from other programs. What gives?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text>If you set the "Auto-OK" switch, Eudora must inhibit all alerts and windows from tools, because Eudora has no effective way to dismiss them. The Communications Toolbox does not provide a way to specify that you want things like the modem monitor window and progress windows, but not alerts.So, you have to choose; pretty dialogs from CTB tools, or having Eudora automatically dismiss alerts. Can't have both.</text>
</content>
<name></name>
<script></script>
</card>
card_16136.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE card PUBLIC "-//Apple, Inc.//DTD card V 2.0//EN" "" >
<text>What the heck is "X-Sender" and "(Unverified)" and how can I make them go away?</text>
</content>
<content>
<layer>background</layer>
<id>3</id>
<text><span class="style5"> You don't need a password to send mail on the Internet. Therefore, anyone with a little knowledge can forge mail; send mail and make it look like it came from someone else. However, certain people are rather clue-challenged about this problem, and insist that it is a "Eudora bug" that Eudora does not ask for a password when sending mail. So I have thrown them the "X-Sender" header as a sop. X-Sender: shows up in two situations. First, if you set your Return Address to something other than your POP Account, Eudora will add an X-Sender: header with your POP Account in it, so that people know what account you normally use. Second, if you have not checked your mail since you started Eudora, Eudora does not know if you know the password for the account or not. In this case, if you send mail, Eudora adds an X-Sender: field with your POP Account and "(Unverified)". In summary, X-Sender provides some tiny protection from stupid mail forgers. Smart ones will not have a problem forging mail, so this is really no protection at all, but so it goes. Even I can't always fight City Hall. You can't get rid of it, sorry.</span></text>